//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
/*
  안녕하세요. rosaa입니다. 혹시 몰라 데모 프로젝트를 업로드 합니다.
  실행 해보시면 아실 수 있듯이, Legend에서 마우스를 움직여서
  커서가 올라간 프로젝트가 맨 마지막(Series8)과 위치가 변경되어 맨 위로 올라가게 됩니다.
  이 상황에서 Legend의 체크박스를 클릭하여 Series의 Visible을 컨트롤 하고자 합니다.
  하지만 지금 상황에서는 Series8의 체크박스만 클릭이 가능한 상황입니다.
  어떻게 하면 지금의 상황을 유지하면서 다른 시리즈들의 Visible을 컨트롤 할 수 있을까요?
  고수님들의 도움이 필요합니다 ㅠㅠ 한번만 도와주세요 !!
 */
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ChartMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
	static int BeforeClickedIndex = -1;
	int ClickedIndex = ((TChart*)Sender)->Legend->Clicked(X,Y);

	if(BeforeClickedIndex == ClickedIndex)
	{
		BeforeClickedIndex = ClickedIndex;
		return;
	}

	int SeriesCount = ((TChart*)Sender)->SeriesCount();

	TLineSeries* line[18];

	int i;
	for(i = 0; i < SeriesCount; i++)
	{
		line[i] = (TLineSeries*)((TChart*)Sender)->SeriesList->Items[i];
	}

	// Bring To Front Part
	if(BeforeClickedIndex != -1)
	{
		if(line[SeriesCount-1]->LinePen->Width == 3)
		{
			line[SeriesCount-1]->LinePen->Width = 1;
			((TChart*)Sender)->ExchangeSeries(BeforeClickedIndex, SeriesCount-1);
	//			BeforeClickedIndex = ClickedIndex;
			return;
		}
	}

	BeforeClickedIndex = ClickedIndex;

	for(i = 0; i < SeriesCount; i++)
	{
		if(ClickedIndex == -1)
		{
			line[i]->LinePen->Width = 1;
			continue;
		}
		if(ClickedIndex == i)
		{
			line[i]->LinePen->Width = 3;

			// Bring To Front Part
			((TChart*)Sender)->ExchangeSeries(i, SeriesCount-1);
		}
		else
		{
			line[i]->LinePen->Width = 1;
		}
	}
}
//---------------------------------------------------------------------------
